gpg: Do not allow creation of user ids larger than our parser allows.
authorWerner Koch <wk@gnupg.org>
Tue, 21 May 2019 14:25:56 +0000 (16:25 +0200)
committerDaniel Kahn Gillmor <dkg@fifthhorseman.net>
Thu, 22 Aug 2019 19:11:59 +0000 (20:11 +0100)
commit655cdba886b0c53f0f89d426388ebb7214cfdefa
treee7e18a30f4f6690be31bc42b7d466bdca1ff1119
parent74397ce95ba4a5a16e38439d2bfc52e6f3046712
gpg: Do not allow creation of user ids larger than our parser allows.

* g10/parse-packet.c: Move max packet lengths constants to ...
* g10/packet.h: ... here.
* g10/build-packet.c (do_user_id): Return an error if too data is too
large.
* g10/keygen.c (write_uid): Return an error for too large data.
--

This can lead to keyring corruption becuase we expect that our parser
is abale to parse packts created by us.  Test case is

  gpg --batch --passphrase 'abc' -v  \
      --quick-gen-key $(yes 'a'| head -4000|tr -d '\n')

GnuPG-bug-id: 4532
Signed-off-by: Werner Koch <wk@gnupg.org>
(cherry picked from commit d32963eeb33fd3053d40a4e7071fb0e8b28a8651)

Gbp-Pq: Topic from-2.2.16
Gbp-Pq: Name gpg-Do-not-allow-creation-of-user-ids-larger-than-our-par.patch
g10/build-packet.c
g10/keygen.c
g10/packet.h
g10/parse-packet.c